#include <cstdlib>
#include <iostream>
#include <queue>
using namespace std;
/*  
    二叉链表表示的二叉树使用层序遍历统计树中度为1的结点数
*/
typedef struct binode
{
    int data;
    struct binode *lchild;
    struct binode *rchild;
} binode, *bitree;

void sub(bitree t)
{
    queue<bitree> q;
    bitree p;
    int count = 0;
    q.push(t);
    while (!q.empty())
    {
        // 出队操作
        p = q.front();
        q.pop();
        // 如果结点的只有一个孩子即左孩子为空右孩子不为空或者右孩子为空左孩子不为空
        if (p->lchild == nullptr && p->rchild != nullptr || p->lchild != nullptr && p->rchild == nullptr)
        {
            count++;
        }
        if (p->lchild != nullptr)
        {
            q.push(p->lchild);
            /* code */
        }
        if (p->rchild != nullptr)
        {
            q.push(p->rchild);
            /* code */
        }
    }
}

int main(int argc, char const *argv[])
{
    return 0;
}
